/** layui-v2.3.0 MIT License By https://www.layui.com */
layui.define(function (i) {
  i('layui.mobile', layui.v)
})
layui.define(function (e) {
  'use strict'
  var r = { open: '{{', close: '}}' },
    c = {
      exp: function (e) {
        return new RegExp(e, 'g')
      },
      query: function (e, c, t) {
        var o = ['#([\\s\\S])+?', '([^{#}])*?'][e || 0]
        return n((c || '') + r.open + o + r.close + (t || ''))
      },
      escape: function (e) {
        return String(e || '')
          .replace(/&(?!#?[a-zA-Z0-9]+;)/g, '&amp;')
          .replace(/</g, '&lt;')
          .replace(/>/g, '&gt;')
          .replace(/'/g, '&#39;')
          .replace(/"/g, '&quot;')
      },
      error: function (e, r) {
        var c = 'Laytpl Error：'
        return (
          'object' == typeof console && console.error(c + e + '\n' + (r || '')),
          c + e
        )
      }
    },
    n = c.exp,
    t = function (e) {
      this.tpl = e
    }
  ;(t.pt = t.prototype),
    (window.errors = 0),
    (t.pt.parse = function (e, t) {
      var o = this,
        p = e,
        a = n('^' + r.open + '#', ''),
        l = n(r.close + '$', '')
      ;(e = e
        .replace(/\s+|\r|\t|\n/g, ' ')
        .replace(n(r.open + '#'), r.open + '# ')
        .replace(n(r.close + '}'), '} ' + r.close)
        .replace(/\\/g, '\\\\')
        .replace(n(r.open + '!(.+?)!' + r.close), function (e) {
          return (e = e
            .replace(n('^' + r.open + '!'), '')
            .replace(n('!' + r.close), '')
            .replace(n(r.open + '|' + r.close), function (e) {
              return e.replace(/(.)/g, '\\$1')
            }))
        })
        .replace(/(?="|')/g, '\\')
        .replace(c.query(), function (e) {
          return (
            (e = e.replace(a, '').replace(l, '')),
            '";' + e.replace(/\\/g, '') + ';view+="'
          )
        })
        .replace(c.query(1), function (e) {
          var c = '"+('
          return e.replace(/\s/g, '') === r.open + r.close
            ? ''
            : ((e = e.replace(n(r.open + '|' + r.close), '')),
              /^=/.test(e) && ((e = e.replace(/^=/, '')), (c = '"+_escape_(')),
              c + e.replace(/\\/g, '') + ')+"')
        })),
        (e = '"use strict";var view = "' + e + '";return view;')
      try {
        return (o.cache = e = new Function('d, _escape_', e)), e(t, c.escape)
      } catch (u) {
        return delete o.cache, c.error(u, p)
      }
    }),
    (t.pt.render = function (e, r) {
      var n,
        t = this
      return e
        ? ((n = t.cache ? t.cache(e, c.escape) : t.parse(t.tpl, e)),
          r ? void r(n) : n)
        : c.error('no data')
    })
  var o = function (e) {
    return 'string' != typeof e ? c.error('Template not found') : new t(e)
  }
  ;(o.config = function (e) {
    e = e || {}
    for (var c in e) r[c] = e[c]
  }),
    (o.v = '1.2.0'),
    e('laytpl', o)
})
layui.define(function (e) {
  'use strict'
  var t = (window, document),
    i = 'querySelectorAll',
    n = 'getElementsByClassName',
    a = function (e) {
      return t[i](e)
    },
    s = { type: 0, shade: !0, shadeClose: !0, fixed: !0, anim: 'scale' },
    l = {
      extend: function (e) {
        var t = JSON.parse(JSON.stringify(s))
        for (var i in e) t[i] = e[i]
        return t
      },
      timer: {},
      end: {}
    }
  l.touch = function (e, t) {
    e.addEventListener(
      'click',
      function (e) {
        t.call(this, e)
      },
      !1
    )
  }
  var o = 0,
    r = ['layui-m-layer'],
    d = function (e) {
      var t = this
      ;(t.config = l.extend(e)), t.view()
    }
  ;(d.prototype.view = function () {
    var e = this,
      i = e.config,
      s = t.createElement('div')
    ;(e.id = s.id = r[0] + o),
      s.setAttribute('class', r[0] + ' ' + r[0] + (i.type || 0)),
      s.setAttribute('index', o)
    var l = (function () {
        var e = 'object' == typeof i.title
        return i.title
          ? '<h3 style="' +
              (e ? i.title[1] : '') +
              '">' +
              (e ? i.title[0] : i.title) +
              '</h3>'
          : ''
      })(),
      d = (function () {
        'string' == typeof i.btn && (i.btn = [i.btn])
        var e,
          t = (i.btn || []).length
        return 0 !== t && i.btn
          ? ((e = '<span yes type="1">' + i.btn[0] + '</span>'),
            2 === t && (e = '<span no type="0">' + i.btn[1] + '</span>' + e),
            '<div class="layui-m-layerbtn">' + e + '</div>')
          : ''
      })()
    if (
      (i.fixed ||
        ((i.top = i.hasOwnProperty('top') ? i.top : 100),
        (i.style = i.style || ''),
        (i.style += ' top:' + (t.body.scrollTop + i.top) + 'px')),
      2 === i.type &&
        (i.content =
          '<i></i><i class="layui-m-layerload"></i><i></i><p>' +
          (i.content || '') +
          '</p>'),
      i.skin && (i.anim = 'up'),
      'msg' === i.skin && (i.shade = !1),
      (s.innerHTML =
        (i.shade
          ? '<div ' +
            ('string' == typeof i.shade ? 'style="' + i.shade + '"' : '') +
            ' class="layui-m-layershade"></div>'
          : '') +
        '<div class="layui-m-layermain" ' +
        (i.fixed ? '' : 'style="position:static;"') +
        '><div class="layui-m-layersection"><div class="layui-m-layerchild ' +
        (i.skin ? 'layui-m-layer-' + i.skin + ' ' : '') +
        (i.className ? i.className : '') +
        ' ' +
        (i.anim ? 'layui-m-anim-' + i.anim : '') +
        '" ' +
        (i.style ? 'style="' + i.style + '"' : '') +
        '>' +
        l +
        '<div class="layui-m-layercont">' +
        i.content +
        '</div>' +
        d +
        '</div></div></div>'),
      !i.type || 2 === i.type)
    ) {
      var y = t[n](r[0] + i.type),
        u = y.length
      u >= 1 && c.close(y[0].getAttribute('index'))
    }
    document.body.appendChild(s)
    var m = (e.elem = a('#' + e.id)[0])
    i.success && i.success(m), (e.index = o++), e.action(i, m)
  }),
    (d.prototype.action = function (e, t) {
      var i = this
      e.time &&
        (l.timer[i.index] = setTimeout(function () {
          c.close(i.index)
        }, 1e3 * e.time))
      var a = function () {
        var t = this.getAttribute('type')
        0 == t
          ? (e.no && e.no(), c.close(i.index))
          : e.yes
          ? e.yes(i.index)
          : c.close(i.index)
      }
      if (e.btn)
        for (
          var s = t[n]('layui-m-layerbtn')[0].children, o = s.length, r = 0;
          r < o;
          r++
        )
          l.touch(s[r], a)
      if (e.shade && e.shadeClose) {
        var d = t[n]('layui-m-layershade')[0]
        l.touch(d, function () {
          c.close(i.index, e.end)
        })
      }
      e.end && (l.end[i.index] = e.end)
    })
  var c = {
    v: '2.0 m',
    index: o,
    open: function (e) {
      var t = new d(e || {})
      return t.index
    },
    close: function (e) {
      var i = a('#' + r[0] + e)[0]
      i &&
        ((i.innerHTML = ''),
        t.body.removeChild(i),
        clearTimeout(l.timer[e]),
        delete l.timer[e],
        'function' == typeof l.end[e] && l.end[e](),
        delete l.end[e])
    },
    closeAll: function () {
      for (var e = t[n](r[0]), i = 0, a = e.length; i < a; i++)
        c.close(0 | e[0].getAttribute('index'))
    }
  }
  e('layer-mobile', c)
})
layui.define(function (t) {
  var e = (function () {
    function t(t) {
      return null == t ? String(t) : J[W.call(t)] || 'object'
    }
    function e(e) {
      return 'function' == t(e)
    }
    function n(t) {
      return null != t && t == t.window
    }
    function r(t) {
      return null != t && t.nodeType == t.DOCUMENT_NODE
    }
    function i(e) {
      return 'object' == t(e)
    }
    function o(t) {
      return i(t) && !n(t) && Object.getPrototypeOf(t) == Object.prototype
    }
    function a(t) {
      var e = !!t && 'length' in t && t.length,
        r = T.type(t)
      return (
        'function' != r &&
        !n(t) &&
        ('array' == r ||
          0 === e ||
          ('number' == typeof e && e > 0 && e - 1 in t))
      )
    }
    function s(t) {
      return A.call(t, function (t) {
        return null != t
      })
    }
    function u(t) {
      return t.length > 0 ? T.fn.concat.apply([], t) : t
    }
    function c(t) {
      return t
        .replace(/::/g, '/')
        .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')
        .replace(/([a-z\d])([A-Z])/g, '$1_$2')
        .replace(/_/g, '-')
        .toLowerCase()
    }
    function l(t) {
      return t in F ? F[t] : (F[t] = new RegExp('(^|\\s)' + t + '(\\s|$)'))
    }
    function f(t, e) {
      return 'number' != typeof e || k[c(t)] ? e : e + 'px'
    }
    function h(t) {
      var e, n
      return (
        $[t] ||
          ((e = L.createElement(t)),
          L.body.appendChild(e),
          (n = getComputedStyle(e, '').getPropertyValue('display')),
          e.parentNode.removeChild(e),
          'none' == n && (n = 'block'),
          ($[t] = n)),
        $[t]
      )
    }
    function p(t) {
      return 'children' in t
        ? D.call(t.children)
        : T.map(t.childNodes, function (t) {
            if (1 == t.nodeType) return t
          })
    }
    function d(t, e) {
      var n,
        r = t ? t.length : 0
      for (n = 0; n < r; n++) this[n] = t[n]
      ;(this.length = r), (this.selector = e || '')
    }
    function m(t, e, n) {
      for (j in e)
        n && (o(e[j]) || Q(e[j]))
          ? (o(e[j]) && !o(t[j]) && (t[j] = {}),
            Q(e[j]) && !Q(t[j]) && (t[j] = []),
            m(t[j], e[j], n))
          : e[j] !== E && (t[j] = e[j])
    }
    function v(t, e) {
      return null == e ? T(t) : T(t).filter(e)
    }
    function g(t, n, r, i) {
      return e(n) ? n.call(t, r, i) : n
    }
    function y(t, e, n) {
      null == n ? t.removeAttribute(e) : t.setAttribute(e, n)
    }
    function x(t, e) {
      var n = t.className || '',
        r = n && n.baseVal !== E
      return e === E
        ? r
          ? n.baseVal
          : n
        : void (r ? (n.baseVal = e) : (t.className = e))
    }
    function b(t) {
      try {
        return t
          ? 'true' == t ||
              ('false' != t &&
                ('null' == t
                  ? null
                  : +t + '' == t
                  ? +t
                  : /^[\[\{]/.test(t)
                  ? T.parseJSON(t)
                  : t))
          : t
      } catch (e) {
        return t
      }
    }
    function w(t, e) {
      e(t)
      for (var n = 0, r = t.childNodes.length; n < r; n++) w(t.childNodes[n], e)
    }
    var E,
      j,
      T,
      S,
      C,
      N,
      O = [],
      P = O.concat,
      A = O.filter,
      D = O.slice,
      L = window.document,
      $ = {},
      F = {},
      k = {
        'column-count': 1,
        columns: 1,
        'font-weight': 1,
        'line-height': 1,
        opacity: 1,
        'z-index': 1,
        zoom: 1
      },
      M = /^\s*<(\w+|!)[^>]*>/,
      R = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
      z =
        /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,
      Z = /^(?:body|html)$/i,
      q = /([A-Z])/g,
      H = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'],
      I = ['after', 'prepend', 'before', 'append'],
      V = L.createElement('table'),
      _ = L.createElement('tr'),
      B = {
        tr: L.createElement('tbody'),
        tbody: V,
        thead: V,
        tfoot: V,
        td: _,
        th: _,
        '*': L.createElement('div')
      },
      U = /complete|loaded|interactive/,
      X = /^[\w-]*$/,
      J = {},
      W = J.toString,
      Y = {},
      G = L.createElement('div'),
      K = {
        tabindex: 'tabIndex',
        readonly: 'readOnly',
        for: 'htmlFor',
        class: 'className',
        maxlength: 'maxLength',
        cellspacing: 'cellSpacing',
        cellpadding: 'cellPadding',
        rowspan: 'rowSpan',
        colspan: 'colSpan',
        usemap: 'useMap',
        frameborder: 'frameBorder',
        contenteditable: 'contentEditable'
      },
      Q =
        Array.isArray ||
        function (t) {
          return t instanceof Array
        }
    return (
      (Y.matches = function (t, e) {
        if (!e || !t || 1 !== t.nodeType) return !1
        var n =
          t.matches ||
          t.webkitMatchesSelector ||
          t.mozMatchesSelector ||
          t.oMatchesSelector ||
          t.matchesSelector
        if (n) return n.call(t, e)
        var r,
          i = t.parentNode,
          o = !i
        return (
          o && (i = G).appendChild(t),
          (r = ~Y.qsa(i, e).indexOf(t)),
          o && G.removeChild(t),
          r
        )
      }),
      (C = function (t) {
        return t.replace(/-+(.)?/g, function (t, e) {
          return e ? e.toUpperCase() : ''
        })
      }),
      (N = function (t) {
        return A.call(t, function (e, n) {
          return t.indexOf(e) == n
        })
      }),
      (Y.fragment = function (t, e, n) {
        var r, i, a
        return (
          R.test(t) && (r = T(L.createElement(RegExp.$1))),
          r ||
            (t.replace && (t = t.replace(z, '<$1></$2>')),
            e === E && (e = M.test(t) && RegExp.$1),
            e in B || (e = '*'),
            (a = B[e]),
            (a.innerHTML = '' + t),
            (r = T.each(D.call(a.childNodes), function () {
              a.removeChild(this)
            }))),
          o(n) &&
            ((i = T(r)),
            T.each(n, function (t, e) {
              H.indexOf(t) > -1 ? i[t](e) : i.attr(t, e)
            })),
          r
        )
      }),
      (Y.Z = function (t, e) {
        return new d(t, e)
      }),
      (Y.isZ = function (t) {
        return t instanceof Y.Z
      }),
      (Y.init = function (t, n) {
        var r
        if (!t) return Y.Z()
        if ('string' == typeof t)
          if (((t = t.trim()), '<' == t[0] && M.test(t)))
            (r = Y.fragment(t, RegExp.$1, n)), (t = null)
          else {
            if (n !== E) return T(n).find(t)
            r = Y.qsa(L, t)
          }
        else {
          if (e(t)) return T(L).ready(t)
          if (Y.isZ(t)) return t
          if (Q(t)) r = s(t)
          else if (i(t)) (r = [t]), (t = null)
          else if (M.test(t))
            (r = Y.fragment(t.trim(), RegExp.$1, n)), (t = null)
          else {
            if (n !== E) return T(n).find(t)
            r = Y.qsa(L, t)
          }
        }
        return Y.Z(r, t)
      }),
      (T = function (t, e) {
        return Y.init(t, e)
      }),
      (T.extend = function (t) {
        var e,
          n = D.call(arguments, 1)
        return (
          'boolean' == typeof t && ((e = t), (t = n.shift())),
          n.forEach(function (n) {
            m(t, n, e)
          }),
          t
        )
      }),
      (Y.qsa = function (t, e) {
        var n,
          r = '#' == e[0],
          i = !r && '.' == e[0],
          o = r || i ? e.slice(1) : e,
          a = X.test(o)
        return t.getElementById && a && r
          ? (n = t.getElementById(o))
            ? [n]
            : []
          : 1 !== t.nodeType && 9 !== t.nodeType && 11 !== t.nodeType
          ? []
          : D.call(
              a && !r && t.getElementsByClassName
                ? i
                  ? t.getElementsByClassName(o)
                  : t.getElementsByTagName(e)
                : t.querySelectorAll(e)
            )
      }),
      (T.contains = L.documentElement.contains
        ? function (t, e) {
            return t !== e && t.contains(e)
          }
        : function (t, e) {
            for (; e && (e = e.parentNode); ) if (e === t) return !0
            return !1
          }),
      (T.type = t),
      (T.isFunction = e),
      (T.isWindow = n),
      (T.isArray = Q),
      (T.isPlainObject = o),
      (T.isEmptyObject = function (t) {
        var e
        for (e in t) return !1
        return !0
      }),
      (T.isNumeric = function (t) {
        var e = Number(t),
          n = typeof t
        return (
          (null != t &&
            'boolean' != n &&
            ('string' != n || t.length) &&
            !isNaN(e) &&
            isFinite(e)) ||
          !1
        )
      }),
      (T.inArray = function (t, e, n) {
        return O.indexOf.call(e, t, n)
      }),
      (T.camelCase = C),
      (T.trim = function (t) {
        return null == t ? '' : String.prototype.trim.call(t)
      }),
      (T.uuid = 0),
      (T.support = {}),
      (T.expr = {}),
      (T.noop = function () {}),
      (T.map = function (t, e) {
        var n,
          r,
          i,
          o = []
        if (a(t))
          for (r = 0; r < t.length; r++)
            (n = e(t[r], r)), null != n && o.push(n)
        else for (i in t) (n = e(t[i], i)), null != n && o.push(n)
        return u(o)
      }),
      (T.each = function (t, e) {
        var n, r
        if (a(t)) {
          for (n = 0; n < t.length; n++)
            if (e.call(t[n], n, t[n]) === !1) return t
        } else for (r in t) if (e.call(t[r], r, t[r]) === !1) return t
        return t
      }),
      (T.grep = function (t, e) {
        return A.call(t, e)
      }),
      window.JSON && (T.parseJSON = JSON.parse),
      T.each(
        'Boolean Number String Function Array Date RegExp Object Error'.split(
          ' '
        ),
        function (t, e) {
          J['[object ' + e + ']'] = e.toLowerCase()
        }
      ),
      (T.fn = {
        constructor: Y.Z,
        length: 0,
        forEach: O.forEach,
        reduce: O.reduce,
        push: O.push,
        sort: O.sort,
        splice: O.splice,
        indexOf: O.indexOf,
        concat: function () {
          var t,
            e,
            n = []
          for (t = 0; t < arguments.length; t++)
            (e = arguments[t]), (n[t] = Y.isZ(e) ? e.toArray() : e)
          return P.apply(Y.isZ(this) ? this.toArray() : this, n)
        },
        map: function (t) {
          return T(
            T.map(this, function (e, n) {
              return t.call(e, n, e)
            })
          )
        },
        slice: function () {
          return T(D.apply(this, arguments))
        },
        ready: function (t) {
          return (
            U.test(L.readyState) && L.body
              ? t(T)
              : L.addEventListener(
                  'DOMContentLoaded',
                  function () {
                    t(T)
                  },
                  !1
                ),
            this
          )
        },
        get: function (t) {
          return t === E ? D.call(this) : this[t >= 0 ? t : t + this.length]
        },
        toArray: function () {
          return this.get()
        },
        size: function () {
          return this.length
        },
        remove: function () {
          return this.each(function () {
            null != this.parentNode && this.parentNode.removeChild(this)
          })
        },
        each: function (t) {
          return (
            O.every.call(this, function (e, n) {
              return t.call(e, n, e) !== !1
            }),
            this
          )
        },
        filter: function (t) {
          return e(t)
            ? this.not(this.not(t))
            : T(
                A.call(this, function (e) {
                  return Y.matches(e, t)
                })
              )
        },
        add: function (t, e) {
          return T(N(this.concat(T(t, e))))
        },
        is: function (t) {
          return this.length > 0 && Y.matches(this[0], t)
        },
        not: function (t) {
          var n = []
          if (e(t) && t.call !== E)
            this.each(function (e) {
              t.call(this, e) || n.push(this)
            })
          else {
            var r =
              'string' == typeof t
                ? this.filter(t)
                : a(t) && e(t.item)
                ? D.call(t)
                : T(t)
            this.forEach(function (t) {
              r.indexOf(t) < 0 && n.push(t)
            })
          }
          return T(n)
        },
        has: function (t) {
          return this.filter(function () {
            return i(t) ? T.contains(this, t) : T(this).find(t).size()
          })
        },
        eq: function (t) {
          return t === -1 ? this.slice(t) : this.slice(t, +t + 1)
        },
        first: function () {
          var t = this[0]
          return t && !i(t) ? t : T(t)
        },
        last: function () {
          var t = this[this.length - 1]
          return t && !i(t) ? t : T(t)
        },
        find: function (t) {
          var e,
            n = this
          return (e = t
            ? 'object' == typeof t
              ? T(t).filter(function () {
                  var t = this
                  return O.some.call(n, function (e) {
                    return T.contains(e, t)
                  })
                })
              : 1 == this.length
              ? T(Y.qsa(this[0], t))
              : this.map(function () {
                  return Y.qsa(this, t)
                })
            : T())
        },
        closest: function (t, e) {
          var n = [],
            i = 'object' == typeof t && T(t)
          return (
            this.each(function (o, a) {
              for (; a && !(i ? i.indexOf(a) >= 0 : Y.matches(a, t)); )
                a = a !== e && !r(a) && a.parentNode
              a && n.indexOf(a) < 0 && n.push(a)
            }),
            T(n)
          )
        },
        parents: function (t) {
          for (var e = [], n = this; n.length > 0; )
            n = T.map(n, function (t) {
              if ((t = t.parentNode) && !r(t) && e.indexOf(t) < 0)
                return e.push(t), t
            })
          return v(e, t)
        },
        parent: function (t) {
          return v(N(this.pluck('parentNode')), t)
        },
        children: function (t) {
          return v(
            this.map(function () {
              return p(this)
            }),
            t
          )
        },
        contents: function () {
          return this.map(function () {
            return this.contentDocument || D.call(this.childNodes)
          })
        },
        siblings: function (t) {
          return v(
            this.map(function (t, e) {
              return A.call(p(e.parentNode), function (t) {
                return t !== e
              })
            }),
            t
          )
        },
        empty: function () {
          return this.each(function () {
            this.innerHTML = ''
          })
        },
        pluck: function (t) {
          return T.map(this, function (e) {
            return e[t]
          })
        },
        show: function () {
          return this.each(function () {
            'none' == this.style.display && (this.style.display = ''),
              'none' ==
                getComputedStyle(this, '').getPropertyValue('display') &&
                (this.style.display = h(this.nodeName))
          })
        },
        replaceWith: function (t) {
          return this.before(t).remove()
        },
        wrap: function (t) {
          var n = e(t)
          if (this[0] && !n)
            var r = T(t).get(0),
              i = r.parentNode || this.length > 1
          return this.each(function (e) {
            T(this).wrapAll(n ? t.call(this, e) : i ? r.cloneNode(!0) : r)
          })
        },
        wrapAll: function (t) {
          if (this[0]) {
            T(this[0]).before((t = T(t)))
            for (var e; (e = t.children()).length; ) t = e.first()
            T(t).append(this)
          }
          return this
        },
        wrapInner: function (t) {
          var n = e(t)
          return this.each(function (e) {
            var r = T(this),
              i = r.contents(),
              o = n ? t.call(this, e) : t
            i.length ? i.wrapAll(o) : r.append(o)
          })
        },
        unwrap: function () {
          return (
            this.parent().each(function () {
              T(this).replaceWith(T(this).children())
            }),
            this
          )
        },
        clone: function () {
          return this.map(function () {
            return this.cloneNode(!0)
          })
        },
        hide: function () {
          return this.css('display', 'none')
        },
        toggle: function (t) {
          return this.each(function () {
            var e = T(this)
            ;(t === E ? 'none' == e.css('display') : t) ? e.show() : e.hide()
          })
        },
        prev: function (t) {
          return T(this.pluck('previousElementSibling')).filter(t || '*')
        },
        next: function (t) {
          return T(this.pluck('nextElementSibling')).filter(t || '*')
        },
        html: function (t) {
          return 0 in arguments
            ? this.each(function (e) {
                var n = this.innerHTML
                T(this).empty().append(g(this, t, e, n))
              })
            : 0 in this
            ? this[0].innerHTML
            : null
        },
        text: function (t) {
          return 0 in arguments
            ? this.each(function (e) {
                var n = g(this, t, e, this.textContent)
                this.textContent = null == n ? '' : '' + n
              })
            : 0 in this
            ? this.pluck('textContent').join('')
            : null
        },
        attr: function (t, e) {
          var n
          return 'string' != typeof t || 1 in arguments
            ? this.each(function (n) {
                if (1 === this.nodeType)
                  if (i(t)) for (j in t) y(this, j, t[j])
                  else y(this, t, g(this, e, n, this.getAttribute(t)))
              })
            : 0 in this &&
              1 == this[0].nodeType &&
              null != (n = this[0].getAttribute(t))
            ? n
            : E
        },
        removeAttr: function (t) {
          return this.each(function () {
            1 === this.nodeType &&
              t.split(' ').forEach(function (t) {
                y(this, t)
              }, this)
          })
        },
        prop: function (t, e) {
          return (
            (t = K[t] || t),
            1 in arguments
              ? this.each(function (n) {
                  this[t] = g(this, e, n, this[t])
                })
              : this[0] && this[0][t]
          )
        },
        removeProp: function (t) {
          return (
            (t = K[t] || t),
            this.each(function () {
              delete this[t]
            })
          )
        },
        data: function (t, e) {
          var n = 'data-' + t.replace(q, '-$1').toLowerCase(),
            r = 1 in arguments ? this.attr(n, e) : this.attr(n)
          return null !== r ? b(r) : E
        },
        val: function (t) {
          return 0 in arguments
            ? (null == t && (t = ''),
              this.each(function (e) {
                this.value = g(this, t, e, this.value)
              }))
            : this[0] &&
                (this[0].multiple
                  ? T(this[0])
                      .find('option')
                      .filter(function () {
                        return this.selected
                      })
                      .pluck('value')
                  : this[0].value)
        },
        offset: function (t) {
          if (t)
            return this.each(function (e) {
              var n = T(this),
                r = g(this, t, e, n.offset()),
                i = n.offsetParent().offset(),
                o = { top: r.top - i.top, left: r.left - i.left }
              'static' == n.css('position') && (o.position = 'relative'),
                n.css(o)
            })
          if (!this.length) return null
          if (
            L.documentElement !== this[0] &&
            !T.contains(L.documentElement, this[0])
          )
            return { top: 0, left: 0 }
          var e = this[0].getBoundingClientRect()
          return {
            left: e.left + window.pageXOffset,
            top: e.top + window.pageYOffset,
            width: Math.round(e.width),
            height: Math.round(e.height)
          }
        },
        css: function (e, n) {
          if (arguments.length < 2) {
            var r = this[0]
            if ('string' == typeof e) {
              if (!r) return
              return (
                r.style[C(e)] || getComputedStyle(r, '').getPropertyValue(e)
              )
            }
            if (Q(e)) {
              if (!r) return
              var i = {},
                o = getComputedStyle(r, '')
              return (
                T.each(e, function (t, e) {
                  i[e] = r.style[C(e)] || o.getPropertyValue(e)
                }),
                i
              )
            }
          }
          var a = ''
          if ('string' == t(e))
            n || 0 === n
              ? (a = c(e) + ':' + f(e, n))
              : this.each(function () {
                  this.style.removeProperty(c(e))
                })
          else
            for (j in e)
              e[j] || 0 === e[j]
                ? (a += c(j) + ':' + f(j, e[j]) + ';')
                : this.each(function () {
                    this.style.removeProperty(c(j))
                  })
          return this.each(function () {
            this.style.cssText += ';' + a
          })
        },
        index: function (t) {
          return t
            ? this.indexOf(T(t)[0])
            : this.parent().children().indexOf(this[0])
        },
        hasClass: function (t) {
          return (
            !!t &&
            O.some.call(
              this,
              function (t) {
                return this.test(x(t))
              },
              l(t)
            )
          )
        },
        addClass: function (t) {
          return t
            ? this.each(function (e) {
                if ('className' in this) {
                  S = []
                  var n = x(this),
                    r = g(this, t, e, n)
                  r.split(/\s+/g).forEach(function (t) {
                    T(this).hasClass(t) || S.push(t)
                  }, this),
                    S.length && x(this, n + (n ? ' ' : '') + S.join(' '))
                }
              })
            : this
        },
        removeClass: function (t) {
          return this.each(function (e) {
            if ('className' in this) {
              if (t === E) return x(this, '')
              ;(S = x(this)),
                g(this, t, e, S)
                  .split(/\s+/g)
                  .forEach(function (t) {
                    S = S.replace(l(t), ' ')
                  }),
                x(this, S.trim())
            }
          })
        },
        toggleClass: function (t, e) {
          return t
            ? this.each(function (n) {
                var r = T(this),
                  i = g(this, t, n, x(this))
                i.split(/\s+/g).forEach(function (t) {
                  ;(e === E ? !r.hasClass(t) : e)
                    ? r.addClass(t)
                    : r.removeClass(t)
                })
              })
            : this
        },
        scrollTop: function (t) {
          if (this.length) {
            var e = 'scrollTop' in this[0]
            return t === E
              ? e
                ? this[0].scrollTop
                : this[0].pageYOffset
              : this.each(
                  e
                    ? function () {
                        this.scrollTop = t
                      }
                    : function () {
                        this.scrollTo(this.scrollX, t)
                      }
                )
          }
        },
        scrollLeft: function (t) {
          if (this.length) {
            var e = 'scrollLeft' in this[0]
            return t === E
              ? e
                ? this[0].scrollLeft
                : this[0].pageXOffset
              : this.each(
                  e
                    ? function () {
                        this.scrollLeft = t
                      }
                    : function () {
                        this.scrollTo(t, this.scrollY)
                      }
                )
          }
        },
        position: function () {
          if (this.length) {
            var t = this[0],
              e = this.offsetParent(),
              n = this.offset(),
              r = Z.test(e[0].nodeName) ? { top: 0, left: 0 } : e.offset()
            return (
              (n.top -= parseFloat(T(t).css('margin-top')) || 0),
              (n.left -= parseFloat(T(t).css('margin-left')) || 0),
              (r.top += parseFloat(T(e[0]).css('border-top-width')) || 0),
              (r.left += parseFloat(T(e[0]).css('border-left-width')) || 0),
              { top: n.top - r.top, left: n.left - r.left }
            )
          }
        },
        offsetParent: function () {
          return this.map(function () {
            for (
              var t = this.offsetParent || L.body;
              t && !Z.test(t.nodeName) && 'static' == T(t).css('position');

            )
              t = t.offsetParent
            return t
          })
        }
      }),
      (T.fn.detach = T.fn.remove),
      ['width', 'height'].forEach(function (t) {
        var e = t.replace(/./, function (t) {
          return t[0].toUpperCase()
        })
        T.fn[t] = function (i) {
          var o,
            a = this[0]
          return i === E
            ? n(a)
              ? a['inner' + e]
              : r(a)
              ? a.documentElement['scroll' + e]
              : (o = this.offset()) && o[t]
            : this.each(function (e) {
                ;(a = T(this)), a.css(t, g(this, i, e, a[t]()))
              })
        }
      }),
      I.forEach(function (e, n) {
        var r = n % 2
        ;(T.fn[e] = function () {
          var e,
            i,
            o = T.map(arguments, function (n) {
              var r = []
              return (
                (e = t(n)),
                'array' == e
                  ? (n.forEach(function (t) {
                      return t.nodeType !== E
                        ? r.push(t)
                        : T.zepto.isZ(t)
                        ? (r = r.concat(t.get()))
                        : void (r = r.concat(Y.fragment(t)))
                    }),
                    r)
                  : 'object' == e || null == n
                  ? n
                  : Y.fragment(n)
              )
            }),
            a = this.length > 1
          return o.length < 1
            ? this
            : this.each(function (t, e) {
                ;(i = r ? e : e.parentNode),
                  (e =
                    0 == n
                      ? e.nextSibling
                      : 1 == n
                      ? e.firstChild
                      : 2 == n
                      ? e
                      : null)
                var s = T.contains(L.documentElement, i)
                o.forEach(function (t) {
                  if (a) t = t.cloneNode(!0)
                  else if (!i) return T(t).remove()
                  i.insertBefore(t, e),
                    s &&
                      w(t, function (t) {
                        if (
                          !(
                            null == t.nodeName ||
                            'SCRIPT' !== t.nodeName.toUpperCase() ||
                            (t.type && 'text/javascript' !== t.type) ||
                            t.src
                          )
                        ) {
                          var e = t.ownerDocument
                            ? t.ownerDocument.defaultView
                            : window
                          e.eval.call(e, t.innerHTML)
                        }
                      })
                })
              })
        }),
          (T.fn[r ? e + 'To' : 'insert' + (n ? 'Before' : 'After')] = function (
            t
          ) {
            return T(t)[e](this), this
          })
      }),
      (Y.Z.prototype = d.prototype = T.fn),
      (Y.uniq = N),
      (Y.deserializeValue = b),
      (T.zepto = Y),
      T
    )
  })()
  !(function (t) {
    function e(t) {
      return t._zid || (t._zid = h++)
    }
    function n(t, n, o, a) {
      if (((n = r(n)), n.ns)) var s = i(n.ns)
      return (v[e(t)] || []).filter(function (t) {
        return (
          t &&
          (!n.e || t.e == n.e) &&
          (!n.ns || s.test(t.ns)) &&
          (!o || e(t.fn) === e(o)) &&
          (!a || t.sel == a)
        )
      })
    }
    function r(t) {
      var e = ('' + t).split('.')
      return { e: e[0], ns: e.slice(1).sort().join(' ') }
    }
    function i(t) {
      return new RegExp('(?:^| )' + t.replace(' ', ' .* ?') + '(?: |$)')
    }
    function o(t, e) {
      return (t.del && !y && t.e in x) || !!e
    }
    function a(t) {
      return b[t] || (y && x[t]) || t
    }
    function s(n, i, s, u, l, h, p) {
      var d = e(n),
        m = v[d] || (v[d] = [])
      i.split(/\s/).forEach(function (e) {
        if ('ready' == e) return t(document).ready(s)
        var i = r(e)
        ;(i.fn = s),
          (i.sel = l),
          i.e in b &&
            (s = function (e) {
              var n = e.relatedTarget
              if (!n || (n !== this && !t.contains(this, n)))
                return i.fn.apply(this, arguments)
            }),
          (i.del = h)
        var d = h || s
        ;(i.proxy = function (t) {
          if (((t = c(t)), !t.isImmediatePropagationStopped())) {
            t.data = u
            var e = d.apply(n, t._args == f ? [t] : [t].concat(t._args))
            return e === !1 && (t.preventDefault(), t.stopPropagation()), e
          }
        }),
          (i.i = m.length),
          m.push(i),
          'addEventListener' in n &&
            n.addEventListener(a(i.e), i.proxy, o(i, p))
      })
    }
    function u(t, r, i, s, u) {
      var c = e(t)
      ;(r || '').split(/\s/).forEach(function (e) {
        n(t, e, i, s).forEach(function (e) {
          delete v[c][e.i],
            'removeEventListener' in t &&
              t.removeEventListener(a(e.e), e.proxy, o(e, u))
        })
      })
    }
    function c(e, n) {
      return (
        (!n && e.isDefaultPrevented) ||
          (n || (n = e),
          t.each(T, function (t, r) {
            var i = n[t]
            ;(e[t] = function () {
              return (this[r] = w), i && i.apply(n, arguments)
            }),
              (e[r] = E)
          }),
          e.timeStamp || (e.timeStamp = Date.now()),
          (n.defaultPrevented !== f
            ? n.defaultPrevented
            : 'returnValue' in n
            ? n.returnValue === !1
            : n.getPreventDefault && n.getPreventDefault()) &&
            (e.isDefaultPrevented = w)),
        e
      )
    }
    function l(t) {
      var e,
        n = { originalEvent: t }
      for (e in t) j.test(e) || t[e] === f || (n[e] = t[e])
      return c(n, t)
    }
    var f,
      h = 1,
      p = Array.prototype.slice,
      d = t.isFunction,
      m = function (t) {
        return 'string' == typeof t
      },
      v = {},
      g = {},
      y = 'onfocusin' in window,
      x = { focus: 'focusin', blur: 'focusout' },
      b = { mouseenter: 'mouseover', mouseleave: 'mouseout' }
    ;(g.click = g.mousedown = g.mouseup = g.mousemove = 'MouseEvents'),
      (t.event = { add: s, remove: u }),
      (t.proxy = function (n, r) {
        var i = 2 in arguments && p.call(arguments, 2)
        if (d(n)) {
          var o = function () {
            return n.apply(r, i ? i.concat(p.call(arguments)) : arguments)
          }
          return (o._zid = e(n)), o
        }
        if (m(r))
          return i
            ? (i.unshift(n[r], n), t.proxy.apply(null, i))
            : t.proxy(n[r], n)
        throw new TypeError('expected function')
      }),
      (t.fn.bind = function (t, e, n) {
        return this.on(t, e, n)
      }),
      (t.fn.unbind = function (t, e) {
        return this.off(t, e)
      }),
      (t.fn.one = function (t, e, n, r) {
        return this.on(t, e, n, r, 1)
      })
    var w = function () {
        return !0
      },
      E = function () {
        return !1
      },
      j = /^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,
      T = {
        preventDefault: 'isDefaultPrevented',
        stopImmediatePropagation: 'isImmediatePropagationStopped',
        stopPropagation: 'isPropagationStopped'
      }
    ;(t.fn.delegate = function (t, e, n) {
      return this.on(e, t, n)
    }),
      (t.fn.undelegate = function (t, e, n) {
        return this.off(e, t, n)
      }),
      (t.fn.live = function (e, n) {
        return t(document.body).delegate(this.selector, e, n), this
      }),
      (t.fn.die = function (e, n) {
        return t(document.body).undelegate(this.selector, e, n), this
      }),
      (t.fn.on = function (e, n, r, i, o) {
        var a,
          c,
          h = this
        return e && !m(e)
          ? (t.each(e, function (t, e) {
              h.on(t, n, r, e, o)
            }),
            h)
          : (m(n) || d(i) || i === !1 || ((i = r), (r = n), (n = f)),
            (i !== f && r !== !1) || ((i = r), (r = f)),
            i === !1 && (i = E),
            h.each(function (f, h) {
              o &&
                (a = function (t) {
                  return u(h, t.type, i), i.apply(this, arguments)
                }),
                n &&
                  (c = function (e) {
                    var r,
                      o = t(e.target).closest(n, h).get(0)
                    if (o && o !== h)
                      return (
                        (r = t.extend(l(e), {
                          currentTarget: o,
                          liveFired: h
                        })),
                        (a || i).apply(o, [r].concat(p.call(arguments, 1)))
                      )
                  }),
                s(h, e, i, r, n, c || a)
            }))
      }),
      (t.fn.off = function (e, n, r) {
        var i = this
        return e && !m(e)
          ? (t.each(e, function (t, e) {
              i.off(t, n, e)
            }),
            i)
          : (m(n) || d(r) || r === !1 || ((r = n), (n = f)),
            r === !1 && (r = E),
            i.each(function () {
              u(this, e, r, n)
            }))
      }),
      (t.fn.trigger = function (e, n) {
        return (
          (e = m(e) || t.isPlainObject(e) ? t.Event(e) : c(e)),
          (e._args = n),
          this.each(function () {
            e.type in x && 'function' == typeof this[e.type]
              ? this[e.type]()
              : 'dispatchEvent' in this
              ? this.dispatchEvent(e)
              : t(this).triggerHandler(e, n)
          })
        )
      }),
      (t.fn.triggerHandler = function (e, r) {
        var i, o
        return (
          this.each(function (a, s) {
            ;(i = l(m(e) ? t.Event(e) : e)),
              (i._args = r),
              (i.target = s),
              t.each(n(s, e.type || e), function (t, e) {
                if (((o = e.proxy(i)), i.isImmediatePropagationStopped()))
                  return !1
              })
          }),
          o
        )
      }),
      'focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error'
        .split(' ')
        .forEach(function (e) {
          t.fn[e] = function (t) {
            return 0 in arguments ? this.bind(e, t) : this.trigger(e)
          }
        }),
      (t.Event = function (t, e) {
        m(t) || ((e = t), (t = e.type))
        var n = document.createEvent(g[t] || 'Events'),
          r = !0
        if (e) for (var i in e) 'bubbles' == i ? (r = !!e[i]) : (n[i] = e[i])
        return n.initEvent(t, r, !0), c(n)
      })
  })(e),
    (function (t) {
      function e(e, n, r) {
        var i = t.Event(n)
        return t(e).trigger(i, r), !i.isDefaultPrevented()
      }
      function n(t, n, r, i) {
        if (t.global) return e(n || x, r, i)
      }
      function r(e) {
        e.global && 0 === t.active++ && n(e, null, 'ajaxStart')
      }
      function i(e) {
        e.global && !--t.active && n(e, null, 'ajaxStop')
      }
      function o(t, e) {
        var r = e.context
        return (
          e.beforeSend.call(r, t, e) !== !1 &&
          n(e, r, 'ajaxBeforeSend', [t, e]) !== !1 &&
          void n(e, r, 'ajaxSend', [t, e])
        )
      }
      function a(t, e, r, i) {
        var o = r.context,
          a = 'success'
        r.success.call(o, t, a, e),
          i && i.resolveWith(o, [t, a, e]),
          n(r, o, 'ajaxSuccess', [e, r, t]),
          u(a, e, r)
      }
      function s(t, e, r, i, o) {
        var a = i.context
        i.error.call(a, r, e, t),
          o && o.rejectWith(a, [r, e, t]),
          n(i, a, 'ajaxError', [r, i, t || e]),
          u(e, r, i)
      }
      function u(t, e, r) {
        var o = r.context
        r.complete.call(o, e, t), n(r, o, 'ajaxComplete', [e, r]), i(r)
      }
      function c(t, e, n) {
        if (n.dataFilter == l) return t
        var r = n.context
        return n.dataFilter.call(r, t, e)
      }
      function l() {}
      function f(t) {
        return (
          t && (t = t.split(';', 2)[0]),
          (t &&
            (t == T
              ? 'html'
              : t == j
              ? 'json'
              : w.test(t)
              ? 'script'
              : E.test(t) && 'xml')) ||
            'text'
        )
      }
      function h(t, e) {
        return '' == e ? t : (t + '&' + e).replace(/[&?]{1,2}/, '?')
      }
      function p(e) {
        e.processData &&
          e.data &&
          'string' != t.type(e.data) &&
          (e.data = t.param(e.data, e.traditional)),
          !e.data ||
            (e.type &&
              'GET' != e.type.toUpperCase() &&
              'jsonp' != e.dataType) ||
            ((e.url = h(e.url, e.data)), (e.data = void 0))
      }
      function d(e, n, r, i) {
        return (
          t.isFunction(n) && ((i = r), (r = n), (n = void 0)),
          t.isFunction(r) || ((i = r), (r = void 0)),
          { url: e, data: n, success: r, dataType: i }
        )
      }
      function m(e, n, r, i) {
        var o,
          a = t.isArray(n),
          s = t.isPlainObject(n)
        t.each(n, function (n, u) {
          ;(o = t.type(u)),
            i &&
              (n = r
                ? i
                : i +
                  '[' +
                  (s || 'object' == o || 'array' == o ? n : '') +
                  ']'),
            !i && a
              ? e.add(u.name, u.value)
              : 'array' == o || (!r && 'object' == o)
              ? m(e, u, r, n)
              : e.add(n, u)
        })
      }
      var v,
        g,
        y = +new Date(),
        x = window.document,
        b = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
        w = /^(?:text|application)\/javascript/i,
        E = /^(?:text|application)\/xml/i,
        j = 'application/json',
        T = 'text/html',
        S = /^\s*$/,
        C = x.createElement('a')
      ;(C.href = window.location.href),
        (t.active = 0),
        (t.ajaxJSONP = function (e, n) {
          if (!('type' in e)) return t.ajax(e)
          var r,
            i,
            u = e.jsonpCallback,
            c = (t.isFunction(u) ? u() : u) || 'Zepto' + y++,
            l = x.createElement('script'),
            f = window[c],
            h = function (e) {
              t(l).triggerHandler('error', e || 'abort')
            },
            p = { abort: h }
          return (
            n && n.promise(p),
            t(l).on('load error', function (o, u) {
              clearTimeout(i),
                t(l).off().remove(),
                'error' != o.type && r
                  ? a(r[0], p, e, n)
                  : s(null, u || 'error', p, e, n),
                (window[c] = f),
                r && t.isFunction(f) && f(r[0]),
                (f = r = void 0)
            }),
            o(p, e) === !1
              ? (h('abort'), p)
              : ((window[c] = function () {
                  r = arguments
                }),
                (l.src = e.url.replace(/\?(.+)=\?/, '?$1=' + c)),
                x.head.appendChild(l),
                e.timeout > 0 &&
                  (i = setTimeout(function () {
                    h('timeout')
                  }, e.timeout)),
                p)
          )
        }),
        (t.ajaxSettings = {
          type: 'GET',
          beforeSend: l,
          success: l,
          error: l,
          complete: l,
          context: null,
          global: !0,
          xhr: function () {
            return new window.XMLHttpRequest()
          },
          accepts: {
            script:
              'text/javascript, application/javascript, application/x-javascript',
            json: j,
            xml: 'application/xml, text/xml',
            html: T,
            text: 'text/plain'
          },
          crossDomain: !1,
          timeout: 0,
          processData: !0,
          cache: !0,
          dataFilter: l
        }),
        (t.ajax = function (e) {
          var n,
            i,
            u = t.extend({}, e || {}),
            d = t.Deferred && t.Deferred()
          for (v in t.ajaxSettings)
            void 0 === u[v] && (u[v] = t.ajaxSettings[v])
          r(u),
            u.crossDomain ||
              ((n = x.createElement('a')),
              (n.href = u.url),
              (n.href = n.href),
              (u.crossDomain =
                C.protocol + '//' + C.host != n.protocol + '//' + n.host)),
            u.url || (u.url = window.location.toString()),
            (i = u.url.indexOf('#')) > -1 && (u.url = u.url.slice(0, i)),
            p(u)
          var m = u.dataType,
            y = /\?.+=\?/.test(u.url)
          if (
            (y && (m = 'jsonp'),
            (u.cache !== !1 &&
              ((e && e.cache === !0) || ('script' != m && 'jsonp' != m))) ||
              (u.url = h(u.url, '_=' + Date.now())),
            'jsonp' == m)
          )
            return (
              y ||
                (u.url = h(
                  u.url,
                  u.jsonp ? u.jsonp + '=?' : u.jsonp === !1 ? '' : 'callback=?'
                )),
              t.ajaxJSONP(u, d)
            )
          var b,
            w = u.accepts[m],
            E = {},
            j = function (t, e) {
              E[t.toLowerCase()] = [t, e]
            },
            T = /^([\w-]+:)\/\//.test(u.url)
              ? RegExp.$1
              : window.location.protocol,
            N = u.xhr(),
            O = N.setRequestHeader
          if (
            (d && d.promise(N),
            u.crossDomain || j('X-Requested-With', 'XMLHttpRequest'),
            j('Accept', w || '*/*'),
            (w = u.mimeType || w) &&
              (w.indexOf(',') > -1 && (w = w.split(',', 2)[0]),
              N.overrideMimeType && N.overrideMimeType(w)),
            (u.contentType ||
              (u.contentType !== !1 &&
                u.data &&
                'GET' != u.type.toUpperCase())) &&
              j(
                'Content-Type',
                u.contentType || 'application/x-www-form-urlencoded'
              ),
            u.headers)
          )
            for (g in u.headers) j(g, u.headers[g])
          if (
            ((N.setRequestHeader = j),
            (N.onreadystatechange = function () {
              if (4 == N.readyState) {
                ;(N.onreadystatechange = l), clearTimeout(b)
                var e,
                  n = !1
                if (
                  (N.status >= 200 && N.status < 300) ||
                  304 == N.status ||
                  (0 == N.status && 'file:' == T)
                ) {
                  if (
                    ((m =
                      m ||
                      f(u.mimeType || N.getResponseHeader('content-type'))),
                    'arraybuffer' == N.responseType || 'blob' == N.responseType)
                  )
                    e = N.response
                  else {
                    e = N.responseText
                    try {
                      ;(e = c(e, m, u)),
                        'script' == m
                          ? (0, eval)(e)
                          : 'xml' == m
                          ? (e = N.responseXML)
                          : 'json' == m &&
                            (e = S.test(e) ? null : t.parseJSON(e))
                    } catch (r) {
                      n = r
                    }
                    if (n) return s(n, 'parsererror', N, u, d)
                  }
                  a(e, N, u, d)
                } else
                  s(N.statusText || null, N.status ? 'error' : 'abort', N, u, d)
              }
            }),
            o(N, u) === !1)
          )
            return N.abort(), s(null, 'abort', N, u, d), N
          var P = !('async' in u) || u.async
          if ((N.open(u.type, u.url, P, u.username, u.password), u.xhrFields))
            for (g in u.xhrFields) N[g] = u.xhrFields[g]
          for (g in E) O.apply(N, E[g])
          return (
            u.timeout > 0 &&
              (b = setTimeout(function () {
                ;(N.onreadystatechange = l),
                  N.abort(),
                  s(null, 'timeout', N, u, d)
              }, u.timeout)),
            N.send(u.data ? u.data : null),
            N
          )
        }),
        (t.get = function () {
          return t.ajax(d.apply(null, arguments))
        }),
        (t.post = function () {
          var e = d.apply(null, arguments)
          return (e.type = 'POST'), t.ajax(e)
        }),
        (t.getJSON = function () {
          var e = d.apply(null, arguments)
          return (e.dataType = 'json'), t.ajax(e)
        }),
        (t.fn.load = function (e, n, r) {
          if (!this.length) return this
          var i,
            o = this,
            a = e.split(/\s/),
            s = d(e, n, r),
            u = s.success
          return (
            a.length > 1 && ((s.url = a[0]), (i = a[1])),
            (s.success = function (e) {
              o.html(i ? t('<div>').html(e.replace(b, '')).find(i) : e),
                u && u.apply(o, arguments)
            }),
            t.ajax(s),
            this
          )
        })
      var N = encodeURIComponent
      t.param = function (e, n) {
        var r = []
        return (
          (r.add = function (e, n) {
            t.isFunction(n) && (n = n()),
              null == n && (n = ''),
              this.push(N(e) + '=' + N(n))
          }),
          m(r, e, n),
          r.join('&').replace(/%20/g, '+')
        )
      }
    })(e),
    (function (t) {
      ;(t.fn.serializeArray = function () {
        var e,
          n,
          r = [],
          i = function (t) {
            return t.forEach ? t.forEach(i) : void r.push({ name: e, value: t })
          }
        return (
          this[0] &&
            t.each(this[0].elements, function (r, o) {
              ;(n = o.type),
                (e = o.name),
                e &&
                  'fieldset' != o.nodeName.toLowerCase() &&
                  !o.disabled &&
                  'submit' != n &&
                  'reset' != n &&
                  'button' != n &&
                  'file' != n &&
                  (('radio' != n && 'checkbox' != n) || o.checked) &&
                  i(t(o).val())
            }),
          r
        )
      }),
        (t.fn.serialize = function () {
          var t = []
          return (
            this.serializeArray().forEach(function (e) {
              t.push(
                encodeURIComponent(e.name) + '=' + encodeURIComponent(e.value)
              )
            }),
            t.join('&')
          )
        }),
        (t.fn.submit = function (e) {
          if (0 in arguments) this.bind('submit', e)
          else if (this.length) {
            var n = t.Event('submit')
            this.eq(0).trigger(n),
              n.isDefaultPrevented() || this.get(0).submit()
          }
          return this
        })
    })(e),
    (function () {
      try {
        getComputedStyle(void 0)
      } catch (t) {
        var e = getComputedStyle
        window.getComputedStyle = function (t, n) {
          try {
            return e(t, n)
          } catch (r) {
            return null
          }
        }
      }
    })(),
    t('zepto', e)
})
layui.define(['layer-mobile', 'zepto'], function (e) {
  'use strict'
  var t = layui.zepto,
    a = layui['layer-mobile'],
    i = (layui.device(), 'layui-upload-enter'),
    n = 'layui-upload-iframe',
    r = { icon: 2, shift: 6 },
    o = { file: '文件', video: '视频', audio: '音频' }
  a.msg = function (e) {
    return a.open({ content: e || '', skin: 'msg', time: 2 })
  }
  var s = function (e) {
    this.options = e
  }
  ;(s.prototype.init = function () {
    var e = this,
      a = e.options,
      r = t('body'),
      s = t(a.elem || '.layui-upload-file'),
      u = t(
        '<iframe id="' + n + '" class="' + n + '" name="' + n + '"></iframe>'
      )
    return (
      t('#' + n)[0] || r.append(u),
      s.each(function (r, s) {
        s = t(s)
        var u =
            '<form target="' +
            n +
            '" method="' +
            (a.method || 'post') +
            '" key="set-mine" enctype="multipart/form-data" action="' +
            (a.url || '') +
            '"></form>',
          l = s.attr('lay-type') || a.type
        a.unwrap ||
          (u =
            '<div class="layui-box layui-upload-button">' +
            u +
            '<span class="layui-upload-icon"><i class="layui-icon">&#xe608;</i>' +
            (s.attr('lay-title') || a.title || '上传' + (o[l] || '图片')) +
            '</span></div>'),
          (u = t(u)),
          a.unwrap ||
            u
              .on('dragover', function (e) {
                e.preventDefault(), t(this).addClass(i)
              })
              .on('dragleave', function () {
                t(this).removeClass(i)
              })
              .on('drop', function () {
                t(this).removeClass(i)
              }),
          s.parent('form').attr('target') === n &&
            (a.unwrap
              ? s.unwrap()
              : (s.parent().next().remove(), s.unwrap().unwrap())),
          s.wrap(u),
          s.off('change').on('change', function () {
            e.action(this, l)
          })
      })
    )
  }),
    (s.prototype.action = function (e, i) {
      var o = this,
        s = o.options,
        u = e.value,
        l = t(e),
        p = l.attr('lay-ext') || s.ext || ''
      if (u) {
        switch (i) {
          case 'file':
            if (p && !RegExp('\\w\\.(' + p + ')$', 'i').test(escape(u)))
              return a.msg('不支持该文件格式', r), (e.value = '')
            break
          case 'video':
            if (
              !RegExp(
                '\\w\\.(' + (p || 'avi|mp4|wma|rmvb|rm|flash|3gp|flv') + ')$',
                'i'
              ).test(escape(u))
            )
              return a.msg('不支持该视频格式', r), (e.value = '')
            break
          case 'audio':
            if (
              !RegExp('\\w\\.(' + (p || 'mp3|wav|mid') + ')$', 'i').test(
                escape(u)
              )
            )
              return a.msg('不支持该音频格式', r), (e.value = '')
            break
          default:
            if (
              !RegExp(
                '\\w\\.(' + (p || 'jpg|png|gif|bmp|jpeg') + ')$',
                'i'
              ).test(escape(u))
            )
              return a.msg('不支持该图片格式', r), (e.value = '')
        }
        s.before && s.before(e), l.parent().submit()
        var c = t('#' + n),
          f = setInterval(function () {
            var t
            try {
              t = c.contents().find('body').text()
            } catch (i) {
              a.msg('上传接口存在跨域', r), clearInterval(f)
            }
            if (t) {
              clearInterval(f), c.contents().find('body').html('')
              try {
                t = JSON.parse(t)
              } catch (i) {
                return (t = {}), a.msg('请对上传接口返回JSON字符', r)
              }
              'function' == typeof s.success && s.success(t, e)
            }
          }, 30)
        e.value = ''
      }
    }),
    e('upload-mobile', function (e) {
      var t = new s((e = e || {}))
      t.init()
    })
})
layui.define(function (i) {
  i('layim-mobile', layui.v)
})
layui['layui.mobile'] ||
  layui.config({ base: layui.cache.dir + 'lay/modules/mobile/' }).extend({
    'layer-mobile': 'layer-mobile',
    zepto: 'zepto',
    'upload-mobile': 'upload-mobile',
    'layim-mobile': 'layim-mobile'
  }),
  layui.define(['layer-mobile', 'zepto', 'layim-mobile'], function (l) {
    l('mobile', { layer: layui['layer-mobile'], layim: layui['layim-mobile'] })
  })
